pub fn dp_rec_mc(amount: u32) -> u32 {
    let mut coin = [1, 2, 5, 10, 20, 30, 50, 100];
    let mut coin_map = std::collections::BTreeMap::<u32, u32>::new();
    coin.sort();
    // let mut remain = 0;
    let mut origin = amount;
    coin.reverse();
    coin.map(|n| {
        coin_map.entry(n).or_insert(origin / n);
        origin %= n;
    });

    coin_map.values().cloned().sum::<u32>()
}
